10 CL$=CHR$(147):R$=CHR$(18):RF$=CHR$(146):D1$=CHR$(17):U1$=CHR$(145):Q$="," 15 CR$=CHR$(13) 20 U3$=U1$+U1$+U1$:D2$=D1$+D1$:OM$="(EQ,NE,GT,LT,GE,LE)":M$="CAMDSX" 30 PRINTCL$TAB(5)D2$R$"JOGGER'S LOG"RF$D1$:INPUT"MAX # OF RUNS ";RM 40 DIMDM%(12),C$(5,2),TB%(2,RM),N%(5),OP$(5),VL$(5),D$(5) 50 FORI=1TO12:READDM%(I):NEXT 60 FORJ=1TO2:FORI=1TO5:READC$(I,J):NEXTI:NEXTJ 70 GOSUB120:ONMGOTO690,750,790,850,910,200:GOTO70 80 PRINT"CAN'T DO PAST";R:FORI=1TO2500:NEXT:GOTO70 90 INPUT#15,A,B$,C,D:IFA=0THENRETURN 100 PRINTD2$"ERROR ON DISK":PRINTA;B$;C;D:GOTO200 110 REM MAIN MENU 120 B$="":PRINT"[147] C[146] CREATE A FILE":PRINT" A[146] ADD A RECORD" 130 PRINT" M[146] MODIFY A RECORD":PRINT" D[146] DELETE A RECORD" 140 PRINT" S[146] SHOW A RECORD":PRINT" X[146] EXIT" 150 INPUT" ";B$:FORM=1TO6:IFB$<>MID$(M$,M,1)THENNEXT 160 RETURN 170 REM MISC SUBROUTINES 180 B$="Y":PRINTTAB(14)B$U1$:INPUT"ANOTHER(Y/N)";B$:PRINTCL$:RETURN 190 INPUT"NAME ";F$:INPUT"RUN# ";P:CLOSE15:OPEN15,8,15:GOSUB270:RETURN 200 CLOSE1:CLOSE2:CLOSE15:END 210 INPUT"NAME ";F$:CLOSE15:CLOSE2:OPEN15,8,15:OPEN2,8,2,"#":GOSUB270:RETURN 220 FORZ=1TO5:PRINT"#";Z;R$C$(Z,1)RF$" "D$(Z)D1$:NEXTZ:RETURN 230 PRINTD1$R$"CR"RF$" TO CONTINUE":INPUTB$:PRINTCL$:RETURN 240 PRINTD2$R$C$(Z,1)RF$,C$(Z,2):INPUTD$(Z):RETURN 250 REM DISK SUBROUTINES 260 REM GET INDEX FILE 270 OPEN1,8,0,"0:"+F$+".INDX,S,R":GOSUB90 280 FORN=1TO600:INPUT#1,TB%(1,N),TB%(2,N):IFST>64THENR=N-1:CLOSE1:RETURN 290 IFN>RMTHENPRINT"INCREASE MAX RUN#":GOTO200 300 NEXTN 310 REM SAVE INDEX FILE 320 OPEN1,8,1,"@0:"+F$+".INDX,S,W":GOSUB90 330 FORN=1TOR:PRINT#1,TB%(1,N)CR$TB%(2,N):GOSUB90:NEXTN:CLOSE1:CLOSE15:RETURN 340 REM FIND NEXT FREE TRACK & BLOCK 350 T=1:B=1 360 PRINT#15,"B-A:"0;T;B:INPUT#15,A,B$,C,D:IFA=65THENT=C:B=D:GOTO360 370 TB%(1,P)=T:TB%(2,P)=B 380 REM WRITE RUN# P 390 PRINT#2,D$(1)Q$D$(2)Q$D$(3)Q$D$(4)Q$D$(5) 395 PRINT#15,"B-W:"2;0;TB%(1,P);TB%(2,P):RETURN 400 REM READ RUN# P 410 T=TB%(1,P):B=TB%(2,P):PRINT#15,"B-R:"2;0;T;B 420 INPUT#2,D$(1),D$(2),D$(3),D$(4),D$(5):RETURN 430 REM END DISK SUBROUTINES 440 REM SELECTION 450 PRINTCL$D1$R$"SELECTION CRITERIA"RF$:PRINTD2$"ENTER #,OPTION,VALUE"D2$ 460 FORX=1TO5 470 FORZ=1TO5:PRINT"#";Z;"IS FOR ";C$(Z,1):NEXTZ 480 PRINTTAB(5)D2$"OPTIONS =":PRINTOM$D1$:N%(X)=0:INPUTN%(X),OP$(X),VL$(X):PRINTCL$ 490 IFN%(X)=0THENX=X-1:RETURN 500 NEXTX:RETURN 510 REM CALC PACE 520 MI=VAL(MID$(TM$,1,2))*60+VAL(MID$(TM$,3,2)) 530 MI=MI+VAL(MID$(TM$,5,2))/60:PRINTDS$"MI"; 540 PA=MI/VAL(DS$):PM=INT(PA):PS=INT((PA-PM)*60):TM$=STR$(PM):A=LEN(TM$):B$=STR$(PS) 550 D=LEN(B$):DS$="":IFD=2THENDS$="0" 560 PRINT"..."MID$(TM$,2,A-1)":"DS$MID$(B$,2,D-1)" PACE":RETURN 570 REM CALC DAY# 580 U=VAL(LEFT$(DY$,2)):IFU<1ORU>12THENPRINTT"BAD MONTH";DY$:GOTO200 590 DA=DM%(U)+VAL(RIGHT$(DY$,2))*365+VAL(MID$(DY$,3,2)):RETURN 600 REM KEEP HIM HONEST 610 FORZ=1TO3STEP2:IFLEN(D$(Z))<>6THENPRINTD$(Z):GOTO200 620 NEXTZ:RETURN 630 REM DATA BASE SUBROUTINES 640 REM DATA ENTRY 650 PRINTCL$"ENTER DATA ON RUN#";P 660 FORZ=1TO5:D$(Z)="":GOSUB240:NEXTZ 670 GOSUB610:GOSUB350:RETURN 680 REM CREATE A FILE 690 INPUT" NAME ";F$:OPEN15,8,2,F$+".INDX,S,R":OPEN11,8,15:INPUT#11,A$,B$,C$ 700 IFB$<>"FILE NOT FOUND"THENPRINTF$" ALREADY EXISTS":CLOSE11:CLOSE15:GOTO690 710 CLOSE11:CLOSE15:OPEN15,8,15:OPEN2,8,2,"#" 720 FORP=1TORM:GOSUB650:GOSUB180:IFB$="Y"THENNEXTP 730 R=P:GOSUB320:CLOSE2:GOTO70 740 REM ADD AN ENTRY 750 GOSUB210:IFR+1>RMTHEN80 760 R=R+1:P=R:GOSUB650 770 GOSUB320:CLOSE2:GOTO70 780 REM MODIFY RUN# P 790 GOSUB190:CLOSE2:OPEN2,8,2,"#":IFP>RTHEN80 800 GOSUB410:PRINT"[147]":GOSUB220 810 Z=0:INPUT"MODIFY #";Z:IFZ=0THENGOSUB610:GOSUB390:CLOSE2:CLOSE15:GOTO70 820 IFZ>=6THENPRINT"BAD #":GOTO810 830 GOSUB240:GOTO810 840 REM DELETE AN ENTRY 850 GOSUB190:IFP>RTHEN80 860 PRINT#15,"B-F:"0;TB%(1,P);TB%(2,P) 870 IF P3THEN950 940 PRINTCL$"ONE *=HOW MANY MILES":INPUTSC:SC=1/SC 950 FORP=1TOR:GOSUB410:C=0:IFX=0THEN1060 960 REM LOGICAL SELECTION 970 FORW=1TOX:N=N%(W) 980 IFOP$(W)="EQ"THENIFD$(N)=VL$(W)THENC=C+1:GOTO1040 990 IFOP$(W)="NE"THENIFD$(N)<>VL$(W)THENC=C+1:GOTO1040 1000 IFOP$(W)="LT"THENIFD$(N)VL$(W)THENC=C+1:GOTO1040 1020 IFOP$(W)="LE"THENIFD$(N)<=VL$(W)THENC=C+1:GOTO1040 1030 IFOP$(W)="GE"THENIFD$(N)>=VL$(W)THENC=C+1:GOTO1040 1040 NEXTW 1050 IFC<>XTHEN1250 1060 ONTXGOTO1080,1110,1170 1070 REM LIST 1080 PRINT" "R$"RUN#"RF$;P;D1$:GOSUB220:PRINTD2$D1$:GOSUB230 1090 GOTO1250 1100 REM PACE 1110 DY$=D$(1):GOSUB580:IFBG=0THENBG=DA 1120 TM$=D$(3):DS$=D$(2):GOSUB520:WM=WM+MI/PA:WT=WT+MI 1130 IFDA>=BG+6THENBG=BG+7:DS$=STR$(WM):MI=WT:PRINTR$DS$"MI/WK"RF$;:GOSUB540:WM=0:WT=0 1140 IFWT=0THENGOSUB230 1150 GOTO1250 1160 REM GRAPH 1170 DY$=D$(1):GOSUB580:IFBG=0THENBG=DA:E=0 1180 N0=DA-BG:BG=DA:IFN0<2THEN1200 1190 FORZ=2TON0:PRINT"0":E=E+1:NEXT 1200 NS=INT(VAL(D$(2))*SC+.5):B$="*":IFNS=1THEN1230 1210 IFNS>23THENNS=23 1220 FORZ=2TONS:B$=B$+"*":NEXTZ 1230 PRINTB$:E=E+1:IFE>15THENE=0:GOSUB230 1240 IFE=0THENFORZ=1TO16:PRINT" ";:NEXT:PRINT"[145][145]" 1250 NEXTP 1260 CLOSE1:CLOSE2:CLOSE15 1270 IFTX<>1THENGOSUB230 1280 GOTO 70 1290 DATA0,31,59,90,120,151,181,212,243,273,304,334 1300 DATADATE,DISTANCE,TIME,ROUTE,COMMENTS,(MMDDYY),(MILES),(HHMMSS) 1310 DATA(< 88 CHRS),(< 88 CHRS)